草庐IT

java - 划分数组的方法数

全部标签

ruby - 有没有更好的方法来检查 Ruby 中字符串的 Nil 或 Length == 0?

在Ruby中,是否有比以下方法更好的方法来检查字符串是否为nil或长度为0?if!my_string||my_string.length==0returntrueelsereturnfalseend在C#中有方便的string.IsNullOrEmpty(myString)有什么类似于Ruby的吗? 最佳答案 当我不担心性能时,我会经常使用这个:ifmy_string.to_s==''#It'sniloremptyend当然有各种变化...ifmy_string.to_s.strip.length==0#It'snil,empty,

ruby - 从字符串中删除第一个字符的最简单方法是什么?

例子:[12,23,987,43删除“[”的最快、最有效的方法是什么?可能使用chop()但对于第一个字符? 最佳答案 与上面Pablo的回答类似,但更清洁:str[1..-1]将返回从1到最后一个字符的数组。'HelloWorld'[1..-1]=>"elloWorld" 关于ruby-从字符串中删除第一个字符的最简单方法是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/

ruby - 在 Ruby 中将数组输出到 CSV

使用Ruby将CSV文件读入数组非常容易,但我找不到任何关于如何将数组写入CSV文件的好文档。谁能告诉我该怎么做?如果重要的话,我正在使用Ruby1.9.2。 最佳答案 到一个文件:require'csv'CSV.open("myfile.csv","w")do|csv|csv到一个字符串:require'csv'csv_string=CSV.generatedo|csv|csv这是关于CSV的当前文档:http://ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html

ruby-on-rails - Ruby:include 有反义词吗?对于 Ruby 数组?

我的代码中有以下逻辑:if!@players.include?(p.name)...end@players是一个数组。有什么方法可以避免!吗?理想情况下,这个片段应该是:if@players.does_not_include?(p.name)...end 最佳答案 if@players.exclude?(p.name)...endActiveSupport添加了exclude?Array、Hash和String的方法。这不是纯Ruby,但被很多Ruby开发者使用。来源:ActiveSupportCoreExtensions(Rail

ruby-on-rails - 在 Ruby on Rails 中覆盖 setter 方法的正确方法是什么?

我正在使用RubyonRails3.2.2,我想知道以下是否是覆盖我的类属性的setter方法的“正确”/“正确”/“确定”方法。attr_accessible:attribute_namedefattribute_name=(value)...#Somecustomoperation.self[:attribute_name]=valueend上面的代码似乎按预期工作。但是,我想知道,通过使用上述代码,将来我是否会遇到问题,或者至少,RubyonRails“应该”/“可能发生”什么问题。如果这不是覆盖setter方法的正确方法,那么正确的方法是什么?注意:如果我使用代码attr_ac

ruby - 在不创建新字符串的情况下在 Ruby 中修剪字符串的规范方法是什么?

这就是我现在所拥有的——对于它正在做的工作来说看起来太冗长了。@title=tokens[Title].strip!||tokens[Title]if!tokens[Title].nil?假设tokens是一个CSV行拆分得到的数组。现在像strip一样的功能!咀嚼!等。如果字符串未被修改,则全部返回nil"abc".strip!#=>nil"abc".strip!#=>"abc"如果它包含额外的前导或尾随空格而不创建副本,Ruby怎么说修剪它?如果我想做tokens[Title].chomp!.strip!会变得更丑 最佳答案 我

ruby - 数组到哈希 Ruby

转换这个数组:a=["item1","item2","item3","item4"]...到哈希:{"item1"=>"item2","item3"=>"item4"}即偶数索引处的元素是键,奇数处的元素是值。 最佳答案 a=["item1","item2","item3","item4"]h=Hash[*a]#=>{"item1"=>"item2","item3"=>"item4"}就是这样。*称为splat运算符。@MikeLewis的一个警告(在评论中):“对此要非常小心。Ruby会在堆栈上扩展splats。如果您对大型数据集

ruby - 获取当前正在执行的方法的名称

$0是顶级Ruby程序的变量,但是当前方法有吗? 最佳答案 比我的第一个答案更好的是你可以使用__method__:classFoodeftest_method__method__endend这会返回一个符号——例如,:test_method。要将方法名称作为字符串返回,请改为调用__method__.to_s。注意:这需要Ruby1.8.7。 关于ruby-获取当前正在执行的方法的名称,我们在StackOverflow上找到一个类似的问题: https://

ruby - 在 Ruby 中使用范围填充数组的正确方法

我正在阅读一本书,其中给出了使用“to_a”方法将范围转换为等效数组的示例当我在irb中运行代码时,我收到以下警告warning:default`to_a'willbeobsolete使用to_a的正确替代方法是什么?有其他方法可以用范围填充数组吗? 最佳答案 您可以使用splat创建具有范围的数组,>>a=*(1..10)=>[1,2,3,4,5,6,7,8,9,10]使用KernelArray方法,Array(1..10)=>[1,2,3,4,5,6,7,8,9,10]或使用to_a(1..10).to_a=>[1,2,3,4,

arrays - 将元素推到数组开头的最简单方法是什么?

我想不出一种单行方式来做到这一点。有办法吗? 最佳答案 使用unshift怎么样?方法?ary.unshift(obj,...)→aryPrependsobjectstothefrontofself,movingotherelementsupwards.并在使用中:irb>>a=[0,1,2]=>[0,1,2]irb>>a.unshift('x')=>["x",0,1,2]irb>>a.inspect=>"["x",0,1,2]" 关于arrays-将元素推到数组开头的最简单方法是什么?